////
////  NewDiaryView.swift
////  MyDiary2025
////
////  Created by 罗万能 on 2025/6/28.
////
//
//
//import SwiftUI
//import PhotosUI
//import SwiftData
//import _MapKit_SwiftUI
//import MapKit
//import Photos
//
//struct NewDiaryView: View {
//    @Environment(\.dismiss) private var dismiss
//    @Environment(\.modelContext) private var modelContext
//    
//    @State private var title: String = ""
//    @State private var content: String = ""
//    @State private var isSecret: Bool = false
//    @State private var selectedDate: Date = Date()
//    @State private var selectedCategory: CategoryModel?
//    @State private var selectedWeather: WeatherCondition = .sunny
//    @State private var selectedTags: Set<TagModel> = []
//    @State private var location: CLLocationCoordinate2D? = CLLocationCoordinate2D(latitude: 30.657413, longitude: 104.064773)
//    @State private var showMapSheet: Bool = false
//    @State private var selectedImages: [UIImage] = []
//    @State private var selectedVideos: [URL] = []
//    @State private var showingImagePicker: Bool = false
//    @State private var selectedMedia: PHAsset?
//    
//    // 颜色定义
//    let primaryGradient = LinearGradient(
//        colors: [Color("primary1"), Color("primary2")],
//        startPoint: .topLeading,
//        endPoint: .bottomTrailing
//    )
//    
//    // 所有分类选项
//    @Query private var allCategories: [CategoryModel]
//    
//    // 所有标签选项
//    @Query private var allTags: [TagModel]
//    
//    var body: some View {
//        NavigationStack {
//            ScrollView {
//                VStack(alignment: .leading, spacing: 20) {
//                    // 标题输入
//                    TextField("输入日记标题", text: $title)
//                        .font(.title2.bold())
//                        .padding()
//                        .background(
//                            RoundedRectangle(cornerRadius: 15)
//                                .fill(Color("cardBackground"))
//                                .shadow(radius: 5)
//                        )
//                    
//                    // 内容输入
//                    TextEditor(text: $content)
//                        .font(.body)
//                        .frame(minHeight: 200)
//                        .padding()
//                        .background(
//                            RoundedRectangle(cornerRadius: 15)
//                                .fill(Color("cardBackground"))
//                                .shadow(radius: 5)
//                        )
//                    
//                    // 日期选择
//                    DatePicker("选择日期", selection: $selectedDate, displayedComponents: .date)
//                        .padding()
//                        .background(
//                            RoundedRectangle(cornerRadius: 15)
//                                .fill(Color("cardBackground"))
//                                .shadow(radius: 5)
//                        )
//                    
//                    // 分类选择
//                    Picker("选择分类", selection: $selectedCategory) {
//                        Text("未分类").tag(nil as CategoryModel?)
//                        ForEach(allCategories) { category in
//                            HStack {
//                                category.image
//                                    .resizable()
//                                    .frame(width: 30, height: 30)
//                                    .clipShape(Circle())
//                                Text(category.categoryName)
//                                    .foregroundColor(category.categoryColor)
//                            }
//                            .tag(Optional(category) as CategoryModel?)
//                        }
//                    }
//                    .pickerStyle(MenuPickerStyle())
//                    .padding()
//                    .background(
//                        RoundedRectangle(cornerRadius: 15)
//                            .fill(Color("cardBackground"))
//                            .shadow(radius: 5)
//                    )
//                    
//                    // 天气选择
//                    Picker("选择天气", selection: $selectedWeather) {
//                        ForEach(WeatherCondition.allCases) { weather in
//                            HStack {
//                                Image(systemName: weather.image)
//                                Text(weather.chineseDescription)
//                            }
//                            .tag(weather)
//                        }
//                    }
//                    .pickerStyle(WheelPickerStyle())
//                    .padding()
//                    .background(
//                        RoundedRectangle(cornerRadius: 15)
//                            .fill(Color("cardBackground"))
//                            .shadow(radius: 5)
//                    )
//                    
//                    // 标签选择
//                    VStack(alignment: .leading) {
//                        Text("选择标签")
//                            .font(.headline)
//                            .padding(.leading)
//                        
//                        ScrollView(.horizontal, showsIndicators: false) {
//                            HStack(spacing: 10) {
//                                ForEach(allTags) { tag in
//                                    TagChip(tag: tag, isSelected: $selectedTags.contains(tag))
//                                }
//                                
//                                // 添加新标签按钮
//                                Button(action: {
//                                    // 这里可以添加新建标签的逻辑
//                                }) {
//                                    Text("+ 新建标签")
//                                        .font(.subheadline)
//                                        .foregroundColor(.white)
//                                        .padding(.vertical, 8)
//                                        .padding(.horizontal, 12)
//                                        .background(
//                                            Capsule()
//                                                .fill(Color("accentColor"))
//                                        )
//                                }
//                            }
//                            .padding()
//                        }
//                    }
//                    .background(
//                        RoundedRectangle(cornerRadius: 15)
//                            .fill(Color("cardBackground"))
//                            .shadow(radius: 5)
//                    )
//                    
//                    // 位置选择
//                    VStack(alignment: .leading) {
//                        Text("选择位置")
//                            .font(.headline)
//                            .padding(.leading)
//                        
//                        Map(coordinateRegion: .constant(MKCoordinateRegion(
//                            center: location ?? CLLocationCoordinate2D(latitude: 30.657413, longitude: 104.064773),
//                            span: MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)
//                        )))
//                        .frame(height: 200)
//                        .cornerRadius(15)
//                        .shadow(radius: 5)
//                        .onTapGesture {
//                            showMapSheet = true
//                        }
//                        
//                        if let location = location {
//                            Text("\(location.latitude), \(location.longitude)")
//                                .font(.subheadline)
//                                .foregroundColor(.gray)
//                                .padding(.leading)
//                        }
//                    }
//                    .sheet(isPresented: $showMapSheet) {
//                        // 地图选择界面
////                        MapLocationPicker(selectedLocation: $location)
//                    }
//                    .background(
//                        RoundedRectangle(cornerRadius: 15)
//                            .fill(Color("cardBackground"))
//                            .shadow(radius: 5)
//                    )
//                    
//                    // 媒体选择
//                    VStack(alignment: .leading) {
//                        Text("选择媒体")
//                            .font(.headline)
//                            .padding(.leading)
//                        
//                        HStack {
//                            // 图片选择
//                            VStack {
//                                Text("图片")
//                                    .font(.subheadline)
//                                    .foregroundColor(.gray)
//                                
//                                Grid(columns: 3, alignment: .center) {
//                                    ForEach(0..<selectedImages.count, id: \.self) { index in
//                                        GridCell(
//                                            image: selectedImages[index],
//                                            onDelete: { removeImage(at: index) }
//                                        )
//                                    }
//                                    
//                                    // 添加图片按钮
//                                    if selectedImages.count < 9 {
//                                        GridCell(
//                                            isAddButton: true,
//                                            onTap: {
//                                                showingImagePicker = true
//                                                selectedMedia = nil
//                                            }
//                                        )
//                                    }
//                                }
//                                .frame(maxWidth: .infinity)
//                            }
//                            .frame(width: UIScreen.main.bounds.width / 2 - 10)
//                            
//                            // 视频选择
//                            VStack {
//                                Text("视频")
//                                    .font(.subheadline)
//                                    .foregroundColor(.gray)
//                                
//                                Grid(columns: 1, alignment: .center) {
//                                    ForEach(0..<selectedVideos.count, id: \.self) { index in
//                                        VideoCell(videoURL: selectedVideos[index], onDelete: { removeVideo(at: index) })
//                                    }
//                                    
//                                    // 添加视频按钮
//                                    if selectedVideos.count < 3 {
//                                        GridCell(
//                                            isAddButton: true,
//                                            icon: "video.fill",
//                                            onTap: {
//                                                showingImagePicker = true
//                                                selectedMedia = nil
//                                            }
//                                        )
//                                    }
//                                }
//                                .frame(maxWidth: .infinity)
//                            }
//                            .frame(width: UIScreen.main.bounds.width / 2 - 10)
//                        }
//                    }
//                    .background(
//                        RoundedRectangle(cornerRadius: 15)
//                            .fill(Color("cardBackground"))
//                            .shadow(radius: 5)
//                    )
//                }
//                .padding()
//            }
//            .navigationTitle("新建日记")
//            .navigationBarTitleDisplayMode(.inline)
//            .toolbar {
//                ToolbarItem(placement: .cancellationAction) {
//                    Button("取消") {
//                        dismiss()
//                    }
//                }
//                ToolbarItem(placement: .confirmationAction) {
//                    Button("保存") {
//                        saveDiary()
//                    }
//                    .disabled(title.isEmpty || content.isEmpty)
//                }
//            }
//            .sheet(isPresented: $showingImagePicker) {
////                PhotoPicker(
////                    selectedMedia: $selectedMedia,
////                    onImageSelected: { image in
////                        selectedImages.append(image)
////                    },
////                    onVideoSelected: { url in
////                        selectedVideos.append(url)
////                    }
////                )
//            }
//            .background(primaryGradient)
//            .edgesIgnoringSafeArea(.all)
//        }
//    }
//    
//    // 保存日记
//    private func saveDiary() {
//        let newDiary = DiaryModel(
//            id: UUID(),
//            createDate: selectedDate,
//            isSecret: isSecret,
//            title: title,
//            content: content,
//            images: selectedImages.map { $0.pngData() ?? Data() },
//            videos: selectedVideos.map { try! Data(contentsOf: $0) },
//            tag: Array(selectedTags),
//            latitude: location?.latitude,
//            longitude: location?.longitude,
//            category: selectedCategory ?? CategoryModel.debugData,
//            weather: selectedWeather,
//            comment: []
//        )
//        
//        modelContext.insert(newDiary)
//        dismiss()
//    }
//    
//    // 移除图片
//    private func removeImage(at index: Int) {
//        selectedImages.remove(at: index)
//    }
//    
//    // 移除视频
//    private func removeVideo(at index: Int) {
//        selectedVideos.remove(at: index)
//    }
//}
//
//// 标签芯片组件
//struct TagChip: View {
//    let tag: TagModel
//    @Binding var isSelected: Bool
//    
//    var body: some View {
//        Text(tag.tagTitle)
//            .font(.subheadline)
//            .foregroundColor(isSelected ? .white : tag.tagColor)
//            .padding(.vertical, 8)
//            .padding(.horizontal, 12)
//            .background(
//                Capsule()
//                    .fill(isSelected ? tag.tagColor : Color("tagBackground"))
//            )
//            .onTapGesture {
//                isSelected.toggle()
//            }
//    }
//}
//
//// 网格单元格组件
//struct GridCell: View {
//    let image: UIImage?
//    let isAddButton: Bool
//    let icon: String
//    let onTap: () -> Void
//    let onDelete: (() -> Void)?
//    
//    init(image: UIImage? = nil, isAddButton: Bool = false, icon: String = "plus", onTap: @escaping () -> Void, onDelete: (() -> Void)? = nil) {
//        self.image = image
//        self.isAddButton = isAddButton
//        self.icon = icon
//        self.onTap = onTap
//        self.onDelete = onDelete
//    }
//    
//    var body: some View {
//        ZStack {
//            if isAddButton {
//                Circle()
//                    .fill(Color("addButtonBackground"))
//                    .frame(width: 80, height: 80)
//                
//                Image(systemName: icon)
//                    .font(.title3)
//                    .foregroundColor(.white)
//            } else if let image = image {
//                Image(uiImage: image)
//                    .resizable()
//                    .aspectRatio(contentMode: .fill)
//                    .frame(width: 80, height: 80)
//                    .cornerRadius(8)
//                
//                if let onDelete = onDelete {
//                    Circle()
//                        .fill(Color.red.opacity(0.7))
//                        .frame(width: 20, height: 20)
//                        .position(x: 70, y: 10)
//                    
//                    Image(systemName: "xmark")
//                        .font(.caption)
//                        .foregroundColor(.white)
//                        .position(x: 70, y: 10)
//                        .onTapGesture {
//                            onDelete()
//                        }
//                }
//            }
//        }
//        .onTapGesture {
//            onTap()
//        }
//    }
//}
//
//// 视频单元格组件
//struct VideoCell: View {
//    let videoURL: URL
//    let onDelete: () -> Void
//    
//    var body: some View {
//        ZStack {
//            Image(systemName: "video.fill")
//                .font(.title)
//                .foregroundColor(.gray)
//                .frame(width: 80, height: 80)
//            
//            Circle()
//                .fill(Color("videoOverlay"))
//                .frame(width: 30, height: 30)
//            
//            Image(systemName: "play.fill")
//                .font(.caption)
//                .foregroundColor(.white)
//            
////            if let onDelete = onDelete {
////                Circle()
////                    .fill(Color.red.opacity(0.7))
////                    .frame(width: 20, height: 20)
////                    .position(x: 70, y: 10)
////                
////                Image(systemName: "xmark")
////                    .font(.caption)
////                    .foregroundColor(.white)
////                    .position(x: 70, y: 10)
////                    .onTapGesture {
////                        onDelete()
////                    }
////            }
//        }
//        .background(
//            RoundedRectangle(cornerRadius: 8)
//                .fill(Color("videoBackground"))
//        )
//    }
//}
//
//#Preview(body: {
//    NewDiaryView()
//})
